package com.lmy.springboot.bean;

import lombok.*;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * ConfigurationProperties(prefix = "furn01")
 * 1.表示将配置文件中前缀为furn01的k的属性值对应绑定到该bean的属性中，属性名需要一致
 * 2.该注解使用的前提是该bean已被注入到ioc容器中，否则会报错
 * 3.如果想直接使用，需要在配置类中使用 @EnableConfigurationProperties({Furn.class}) 来对某bean启用绑定功能，并将某bean注入ioc容器
 */
//@Component
@ConfigurationProperties(prefix = "furn01")
/**
 * ToString注解会在编译时生成toString()，默认情况下，会生成一个无参构造器
 * Data注解等价于使用了如下注解：@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode
 * NoArgsConstructor 注解会在编译时生成无参构造器。当我们有其他构造器生成时，如果希望仍然有无参构造器，需要使用该注解指定，否则会覆盖无参构造器
 * AllArgsConstructor 注解会在编译时生成全参构造器，会覆盖默认的无参构造器
 */
@ToString
//@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class Furn {

    private Integer id;

    private String name;

    private Double price;
}
